home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / ISSUE14 / IDAPI / JTABTST.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-09-05  |  5.3 KB  |  209 lines

  1. unit Jtabtst;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, DBTables,
  8.   Menus, StdCtrls, TJTable, DbiTypes, DbiProcs;
  9.  
  10. type
  11.   TMainForm = class(TForm)
  12.     DataSource1: TDataSource;
  13.     DBGrid1: TDBGrid;
  14.     DBNavigator1: TDBNavigator;
  15.     MainMenu1: TMainMenu;
  16.     File1: TMenuItem;
  17.     Showdeleted1: TMenuItem;
  18.     Moveby1: TMenuItem;
  19.     Gotorecord1: TMenuItem;
  20.     Undelete1: TMenuItem;
  21.     Toolbar: TPanel;
  22.     Edit1: TEdit;
  23.     Label1: TLabel;
  24.     Tables: TComboBox;
  25.     Databases: TComboBox;
  26.     Msg: TPanel;
  27.     Table1: TjocTable;
  28.     Exit1: TMenuItem;
  29.     N3: TMenuItem;
  30.     Packtable1: TMenuItem;
  31.     Renametable1: TMenuItem;
  32.     Copytable1: TMenuItem;
  33.     N4: TMenuItem;
  34.     Record1: TMenuItem;
  35.     N5: TMenuItem;
  36.     N6: TMenuItem;
  37.     Savechanges1: TMenuItem;
  38.     Info1: TMenuItem;
  39.     Transaction1: TMenuItem;
  40.     Begin1: TMenuItem;
  41.     N7: TMenuItem;
  42.     Commit1: TMenuItem;
  43.     Rollback1: TMenuItem;
  44.     procedure Undelete1Click(Sender: TObject);
  45.     procedure Moveby1Click(Sender: TObject);
  46.     procedure Gotorecord1Click(Sender: TObject);
  47.     procedure Showdeleted1Click(Sender: TObject);
  48.     procedure Exit1Click(Sender: TObject);
  49.     procedure DataSource1DataChange(Sender: TObject; Field: TField);
  50.     procedure FormCreate(Sender: TObject);
  51.     procedure TablesChange(Sender: TObject);
  52.     procedure DatabasesChange(Sender: TObject);
  53.     procedure Packtable1Click(Sender: TObject);
  54.     procedure Copytable1Click(Sender: TObject);
  55.     procedure Renametable1Click(Sender: TObject);
  56.     procedure Savechanges1Click(Sender: TObject);
  57.     procedure Info1Click(Sender: TObject);
  58.     procedure DoIdle(Sender: TObject; var Done: Boolean);
  59.     procedure Begin1Click(Sender: TObject);
  60.     procedure Commit1Click(Sender: TObject);
  61.     procedure Rollback1Click(Sender: TObject);
  62.   private
  63.     { Private declarations }
  64.   public
  65.     { Public declarations }
  66.   end;
  67.  
  68. var
  69.   MainForm: TMainForm;
  70.  
  71. implementation
  72.  
  73. {$R *.DFM}
  74.  
  75. procedure TMainForm.Undelete1Click(Sender: TObject);
  76. begin
  77.   Table1.UndeleteRecord;
  78. end;
  79.  
  80. procedure TMainForm.Moveby1Click(Sender: TObject);
  81. begin
  82.   Table1.MoveRelative(StrToInt(Edit1.Text));
  83. end;
  84.  
  85. procedure TMainForm.Gotorecord1Click(Sender: TObject);
  86. begin
  87.   Table1.GotoRecord(StrToInt(Edit1.Text));
  88. end;
  89.  
  90. procedure TMainForm.Showdeleted1Click(Sender: TObject);
  91. begin
  92.   ShowDeleted1.Checked := not ShowDeleted1.Checked;
  93.   Table1.ShowDeleted := ShowDeleted1.Checked;
  94. end;
  95.  
  96. procedure TMainForm.Exit1Click(Sender: TObject);
  97. begin
  98.   Close;
  99. end;
  100.  
  101. procedure TMainForm.DataSource1DataChange(Sender: TObject; Field: TField);
  102. begin
  103.   with Table1 do
  104.   begin
  105.     Msg.Caption := IntToStr(RecNo) + ' ';
  106.     if Deleted then
  107.       Msg.Caption := Msg.Caption + ' [Deleted] ';
  108.     if IsShared then
  109.       Msg.Caption := Msg.Caption + ' [Shared] ';
  110.     if TransActive(Table1.Database) then
  111.       Msg.Caption := Msg.Caption + '[Transaction active]';
  112.   end;
  113. end;
  114.  
  115. procedure TMainForm.FormCreate(Sender: TObject);
  116. begin
  117.   Session.GetAliasNames(Databases.Items);
  118.   Table1.Open;
  119.   Application.OnIdle := DoIdle;
  120.   Transaction1.Visible := Table1.Database.IsSQLBased;
  121. end;
  122.  
  123. procedure TMainForm.TablesChange(Sender: TObject);
  124. begin
  125.   Table1.Close;
  126.   Table1.DatabaseName := Databases.Text;
  127.   Table1.TableName    := Tables.Text;
  128.   Table1.Open;
  129.   Transaction1.Visible := Table1.Database.IsSQLBased;
  130. end;
  131.  
  132. procedure TMainForm.DatabasesChange(Sender: TObject);
  133. begin
  134.   Session.GetTableNames(Databases.Text, '', True, False, Tables.Items);
  135. end;
  136.  
  137. procedure TMainForm.Packtable1Click(Sender: TObject);
  138. begin
  139.   Table1.Close;
  140.   Table1.Exclusive := True;
  141.   Table1.Open;
  142.   Table1.Pack;
  143. end;
  144.  
  145. procedure TMainForm.Copytable1Click(Sender: TObject);
  146. begin
  147.   Table1.Close;
  148.   Table1.Exclusive := True;
  149.   Table1.Open;
  150.   Table1.CopyTable(Edit1.Text);
  151. end;
  152.  
  153. procedure TMainForm.Renametable1Click(Sender: TObject);
  154. begin
  155.   Table1.Close;
  156.   Table1.Exclusive := True;
  157.   Table1.Open;
  158.   Table1.RenameTable(Edit1.Text);
  159. end;
  160.  
  161. procedure TMainForm.Savechanges1Click(Sender: TObject);
  162. begin
  163.   Table1.Flush;
  164. end;
  165.  
  166. procedure TMainForm.Info1Click(Sender: TObject);
  167. var MsgText: string;
  168. begin
  169.   with Table1 do
  170.   begin
  171.     MsgText := 'Open cursors = ' + IntToStr(OpenCount) + #10 +
  172.                'Table level  = ' + IntToStr(TableLevel)  + #10 +
  173.                'Block size   = ' + IntToStr(BlockSize)   + 'K'#10#10 +
  174.                'Table has been restructured ' + IntToStr(RestructVersion) + ' times';
  175.  
  176.     if IsProtected then
  177.       MsgText := MsgText + #10#10'Table is protected and has ' +
  178.                            IntToStr(PasswordCount) + ' auxiliary passwords';
  179.   end;
  180.   MessageDlg(MsgText, mtInformation, [mbOK], 0);
  181.  
  182. end;
  183.  
  184. procedure TMainForm.DoIdle(Sender: TObject; var Done: Boolean);
  185. begin
  186.   DbiUseIdleTime;
  187. end;
  188.  
  189. procedure TMainForm.Begin1Click(Sender: TObject);
  190. begin
  191.   Table1.Database.StartTransaction;
  192.   if TransActive(Table1.Database) then
  193.     Msg.Caption := Msg.Caption + '[Transaction active]';
  194. end;
  195.  
  196. procedure TMainForm.Commit1Click(Sender: TObject);
  197. begin
  198.   Table1.Database.Commit;
  199.   Table1.Refresh;
  200. end;
  201.  
  202. procedure TMainForm.Rollback1Click(Sender: TObject);
  203. begin
  204.   Table1.Database.Rollback;
  205.   Table1.Refresh;
  206. end;
  207.  
  208. end.
  209.